package com.ruoyi.common.core.domain.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.util.Date;

/**
 * 用户积分变动记录实体类
 *
 * @author ruoyi
 */
@TableName("user_points_log")
@Data
public class UserPointsLog {
    /**
     * 记录ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 用户ID
     */
    private Long userId;

    /**
     * 变动类型: 1-获得 2-消耗 3-冻结 4-解冻 5-过期
     */
    private Integer changeType;

    /**
     * 变动积分值(正数表示增加，负数表示减少)
     */
    private Integer changeValue;

    /**
     * 积分类型: 1-普通积分 2-签到积分 3-消费积分等
     */
    private Integer pointsType;

    /**
     * 变动来源: 如"购物返现"、"兑换礼品"、"任务奖励"等
     */
    private String source;

    /**
     * 关联订单号(如消费订单、兑换订单等)
     */
    private String relatedOrderNo;

    /**
     * 积分过期时间(NULL表示永不过期)
     */
    private Date expireTime;

    /**
     * 变动前积分
     */
    private Integer beforePoints;

    /**
     * 变动后积分
     */
    private Integer afterPoints;

    /**
     * 操作人(系统或管理员)
     */
    private String operator;

    /**
     * 备注
     */
    private String remark;

    /**
     * 创建时间
     */
    private Date createTime;
}
